package com.migu.rbac.repository;

import com.migu.rbac.model.SysMenu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description TODO :
 * @Author: zj
 * @Date: 16:15 2019/3/19
 * @Version 1.0
 **/
@Mapper
public interface SysMenuRepository {
    //根据用户Id查询菜单
    List<SysMenu> selectMenuByUserId(String userid);

    //根据菜单id查询该菜单需要什么角色
    SysMenu findOneWithRolesById(@Param("id") Integer id);

    //查询所有菜单
    List<SysMenu> findAllMenuList();

    //新增菜单前查询是否已经存在
    int selectMenuIsExists(SysMenu sysMenu);

    //新增菜单
    int savaMenu(SysMenu sysMenu);

    //删除菜单
    int deleteMenu(@Param("menuid") int menuid);

    //修改菜单
    int updateMenu(SysMenu sysMenu);

    //删除子菜单
    int deleteChildMenu(@Param("menuid") int menuid);

    //获取菜单id
    int selectMenuIdByMenuName(@Param("menuName") String menuName, @Param("parentid") String parentid);

    //删除updateApilistById
    int updateApilistById(@Param("apilist") String apilist, @Param("id") int id);

    //根据菜单id查询apilist
    String selectApilistById(@Param("id") int id);

    //编辑前查询是否有同名菜单
    int selectMenuNameByUpdate(SysMenu sysMenu);

    //获取最大菜单位置
    Integer getMenuPosition(SysMenu sysMenu);

    //移动位置
    Integer moveMenuPosition(SysMenu sysMenu);

    //所有菜单
    List<SysMenu> selectAll();

}
